package com.javabank.ws.logic;

import com.javabank.ws.dao.DAOFacade;
import com.javabank.ws.dao.impl.DAOFacadeImpl;
import com.javabank.ws.domain.Account;

public class Rules {	
	private DAOFacade facade;
	
    public Rules() {
    	this.facade = new DAOFacadeImpl();
    }
	
	/**
	 * Controleert of een rekeningnummer al bestaat door account op
	 * te zoeken aan de hand van het rekeningnummer
	 * 
	 * @param rekeningnummer
	 * @return boolean
	 */
	public boolean rekeningnummerIsUnique(Integer rekeningnummer){			
		Account account = this.facade.getAccountDAO().getByRekening(rekeningnummer);
			
		if(account == null){
			return true;
		}
		
		return false;
	}
	
	/**
	 * Controleer of account voldoende bestedingsruimte heeft om 
	 * overboeking te voltooien
	 * 
	 * @param account
	 * @param amount
	 * @return boolean
	 */
	public boolean hasEnoughBalance(Account account, float amount) {
		/*
		 * Bestedings ruimte is limiet + saldo. Bijvoorbeelde een saldo
		 * van -100,96 en een limiet van 500 geeft 399.04 bestedingsruimte.
		 */
		if((account.getLimiet() + account.getSaldo()) < amount) {
			return false;
		}
		
		return true;
	}
}